// 80. 删除有序数组中的重复项 II
// https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/
/**
示例 1：

输入：nums = [1,1,1,2,2,3]
输出：5, nums = [1,1,2,2,3]
解释：函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。 不需要考虑数组中超出新长度后面的元素。
示例 2：

输入：nums = [0,0,1,1,1,1,2,3,3]
输出：7, nums = [0,0,1,1,2,3,3]
解释：函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。不需要考虑数组中超出新长度后面的元素。

 */

// 思路
// 记录一个重复数的count，当相等并>1时，就删除当前元素

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function (nums) {
    let dump = -Infinity;
    console.log(`before: ${JSON.stringify(nums)}`);

    for (let i = 1; i < nums.length; i++) {
        if (nums[i] === nums[i - 1]) {
            if (nums[i] === dump) {
                nums.splice(i, 1);
                i = i - 1;
            } else {
                dump = nums[i];
            }
        }
    }

    console.log(`after: ${JSON.stringify(nums)}`);

    return nums.length;
};

removeDuplicates([1, 1, 1, 2, 2, 3]);
removeDuplicates([0, 0, 1, 1, 1, 1, 2, 3, 3]);
